package cn.tedu.carehome.foundation.mapper;

import cn.tedu.carehome.foundation.pojo.dto.FoodUpdateDTO;
import cn.tedu.carehome.foundation.pojo.entity.Food;
import cn.tedu.carehome.foundation.pojo.vo.FoodAdminVO;
import cn.tedu.carehome.foundation.pojo.vo.FoodStandardVO;
import cn.tedu.carehome.foundation.pojo.vo.FoodUpdateVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 处理餐品数据的Mapper接口
 *
 * @author 袁田
 * @version 0.0.1
 */
@Repository
public interface FoodMapper {
    /**
     * 插入相册数据
     *
     * @param food 餐品数据
     * @return 受影响的行数
     */
    int insert(Food food);

    /**
     * 根据id删除餐品
     * @param id 餐品的id
     * @return 受影响的行数
     */
    int deleteById(Long id);



    /**
     * 根据餐品名称统计数据的数量
     * @param name 餐品名称
     * @return 匹配餐品名称的餐品数据的数量
     */
    int countByName(String name);

    /**
     * 根据餐品名称统计数据的数量
     * @param id 餐品名称
     * @return 匹配餐品id的餐品数据的数量
     */
    int countById(Long id);

    /**
     *
     * @return 由餐品对象组成的列表
     */
    List<FoodAdminVO> selectAdmin();

    /**
     * 根据id查询餐品信息
     * @param id 请求餐品的id
     * @return 对应id的餐品信息
     */

    FoodStandardVO getStandardById(Long id);


    /**
     * 修改餐品
     * @param foodUpdateDTO 客户端传来的餐品对象
     */
    void update(FoodUpdateDTO foodUpdateDTO);


    /**
     *检查餐品有没有绑定套餐
     * @param FoodId 餐品id
     * @return 绑定套餐的数量
     */
    int countFoodPackageByFoodId(Long FoodId);

    /**
     * 检查同名但是不同id的餐品数量
     * @param name 餐品的名字
     * @return 数量
     */
    int countByNameAndNotId(String name,Long id);


    List<FoodStandardVO> selectAdminByPage();
}
